#!/bin/bash
function KorostaValittu {
  Xkoordinaatti=$(((ValitunNumero - 1 - $(((ValitunNumero - 1) / 33))) / 33)); Ykoordinaatti=$((ValitunNumero - $((33 * Xkoordinaatti -1))+3));tput cup $((Ykoordinaatti - Xkoordinaatti - 2)) $((Xkoordinaatti * 30));  tput setf 4; echo ${Valittavat[ValitunNumero-1])} 
}

function NormalisoiValittu {
  Xkoordinaatti=$(((ValitunNumero - 1 - $(((ValitunNumero - 1) / 33))) / 33)); Ykoordinaatti=$((ValitunNumero - $((33 * Xkoordinaatti - 1))+3));tput cup $((Ykoordinaatti - Xkoordinaatti - 2)) $((Xkoordinaatti * 30));  tput setf 3; echo ${Valittavat[ValitunNumero-1])} 
}

function TulostaValittavat {
ValittavienLuku=${#Valittavat[@]}
SarakkeidenLuku=$(($ValittavienLuku / 33))
tput setf 3
for (( Sarake=0; Sarake<=SarakkeidenLuku; Sarake++ )) 
do
  for (( Rivi=0; Rivi<=33; Rivi++ ))
  do
    apu=$((Sarake*33))
    test $((apu+Rivi)) -gt $ValittavienLuku && continue
    tput cup $((Rivi+3)) $((Sarake*30)) 
    echo ${Valittavat[$((apu+Rivi+Sarake))]} 
  done
done
}
 
function MuutaValittuNuolinappaimilla { 
read -sn3 key 
[[ ! ${key#*OF} ]] && Tapahtuma='end' && valintatehty=1 # kun on painettu end   koe
[[ ! $key ]] && Tapahtuma='enter' && valintatehty=1 # kun on painettu enter     koe
[[ ${key#*[B} ]] && NormalisoiValittu && ValitunNumero=$((ValitunNumero-(ValitunNumero>1))) && valintalukko='' # kun on painettu nuoli-ylös
[[ ${key#*[A} ]] && NormalisoiValittu && ValitunNumero=$((ValitunNumero+(ValitunNumero<${#Valittavat[*]}))) && valintalukko='' # nuoli-alas
}
 
function ValitseValittavistaYksi () {
local Otsikko key valintatehty=0 Xkoordinaatti Ykoordinaatti 
ValitunNumero=1  
clear; setterm -cursor off
echo '- valittuna oleva on erivärinen. Valittu muuttuu nuolinäppäimillä.'
echo 'Valitse poistettava näistä suurimmista tiedostoista: jos painat enter niin kohta poistetaan mutta jos painat end lopetetaan ohjelma'
TulostaValittavat
while [ $valintatehty -lt 1 ]; do
  KorostaValittu 
  MuutaValittuNuolinappaimilla
done
clear; tput setf 0; setterm -cursor on 
ValitunTeksti=${Valittavat[ValitunNumero-1]}
[[ ! ${ValittavanArvo[ValitunNumero-1]} ]] && ValitunArvo='ei määritelty' || ValitunArvo=${ValittavanArvo[ValitunNumero-1]}
}

# Pääohjelma
Tiedostonkoko=20000
for apu in {1..5}
do
  Valittavat=(`find ~ -type f -size "+"$Tiedostonkoko"k" -exec ls -lh {} \; | awk '{ print $5 ":" $8 }' | sort -rn`) 
  ValittavienLuku=${#Valittavat[@]}
  test $ValittavienLuku -gt 200 && Tiedostonkoko=$(($Tiedostonkoko * 3))
  test $ValittavienLuku -gt 30 && Tiedostonkoko=$(($Tiedostonkoko * 2))
  test $ValittavienLuku -lt 2 &&  Tiedostonkoko=$(($Tiedostonkoko / 3))
  test $ValittavienLuku -lt 15 &&  Tiedostonkoko=$(($Tiedostonkoko / 2))
  # echo $ValittavienLuku'     '$Tiedostonkoko; sleep 1   
done 
ValitseValittavistaYksi 
test "$Tapahtuma" = end && exit
TekstiKaksoispisteeseen=${ValitunTeksti%\:*}
KaksoispisteenPaikka=${#TekstiKaksoispisteeseen}
echo 'Poistan tiedoston: '"${ValitunTeksti:$KaksoispisteenPaikka+1}"' jos painat enter' && read apu && rm ${ValitunTeksti:$KaksoispisteenPaikka+1}*
read -p 'paina enter jatkaakseesi' apu
 
